home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / arm / mach-ep93xx / include / mach / entry-macro.S < prev    next >
Encoding:
Text File  |  2008-12-24  |  1.3 KB  |  60 lines

  1. /*
  2.  * arch/arm/mach-ep93xx/include/mach/entry-macro.S
  3.  * IRQ demultiplexing for EP93xx
  4.  *
  5.  * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
  6.  *
  7.  * This program is free software; you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License as published by
  9.  * the Free Software Foundation; either version 2 of the License, or (at
  10.  * your option) any later version.
  11.  */
  12. #include <mach/ep93xx-regs.h>
  13.  
  14.         .macro    disable_fiq
  15.         .endm
  16.  
  17.         .macro  get_irqnr_preamble, base, tmp
  18.         .endm
  19.  
  20.         .macro  arch_ret_to_user, tmp1, tmp2
  21.         .endm
  22.  
  23.         .macro    get_irqnr_and_base, irqnr, irqstat, base, tmp
  24.         ldr    \base, =(EP93XX_AHB_VIRT_BASE)
  25.         orr    \base, \base, #0x000b0000
  26.         mov    \irqnr, #0
  27.         ldr    \irqstat, [\base]        @ lower 32 interrupts
  28.         cmp    \irqstat, #0
  29.         bne    1001f
  30.  
  31.         eor    \base, \base, #0x00070000
  32.         ldr    \irqstat, [\base]        @ upper 32 interrupts
  33.         cmp    \irqstat, #0
  34.         beq    1002f
  35.         mov    \irqnr, #0x20
  36.  
  37. 1001:
  38.         movs    \tmp, \irqstat, lsl #16
  39.         movne    \irqstat, \tmp
  40.         addeq    \irqnr, \irqnr, #16
  41.  
  42.         movs    \tmp, \irqstat, lsl #8
  43.         movne    \irqstat, \tmp
  44.         addeq    \irqnr, \irqnr, #8
  45.  
  46.         movs    \tmp, \irqstat, lsl #4
  47.         movne    \irqstat, \tmp
  48.         addeq    \irqnr, \irqnr, #4
  49.  
  50.         movs    \tmp, \irqstat, lsl #2
  51.         movne    \irqstat, \tmp
  52.         addeq    \irqnr, \irqnr, #2
  53.  
  54.         movs    \tmp, \irqstat, lsl #1
  55.         addeq    \irqnr, \irqnr, #1
  56.         orrs    \base, \base, #1
  57.  
  58. 1002:
  59.         .endm
  60.